描述
在一个3x3的网格中,放着编号1到8的8块板,以及一块编号为0的空格。
一次移动可以把空格0与上下左右四邻接之一的板子交换。
给定初始和目标的板子排布,返回到目标排布最少的移动次数。
如果不能从初始排布移动到目标排布,返回-1.
样例
初始排布:
[
[2,8,3],
[1,0,4],
[7,6,5]
]
目标排布:
[
[1,2,3],
[8,0,4],
[7,6,5]
]
返回 4
解释:
[ [
[2,8,3], [2,0,3],
[1,0,4], –> [1,8,4],
[7,6,5] [7,6,5]
] ]
[ [
[2,0,3], [0,2,3],
[1,8,4], –> [1,8,4],
[7,6,5] [7,6,5]
] ]
[ [
[0,2,3], [1,2,3],
[1,8,4], –> [0,8,4],
[7,6,5] [7,6,5]
] ]
[ [
[1,2,3], [1,2,3],
[0,8,4], –> [8,0,4],
[7,6,5] [7,6,5]
] ]
思路
和滑动拼图1的思路一样,只需要修改一些参数即可
代码
1 | class Solution { |
-------------end of filethanks for reading-------------